$(function () {
  let layer = layui.layer;
  let form = layui.form;
  // 需求1 初始化文章分类列表
  // 封装为函数
  initArtCateList();

  // 封装
  function initArtCateList() {
    axios({
      method: "GET",
      url: "/my/article/cates",
    }).then((res) => {
      if (res.data.status !== 0) {
        return layer.msg(res.data.message);
      }
      let arr = [];
      let index = 0;
      res.data.data.forEach((ele) => {
        index++;
        arr.push(`
                 <tr>
                    <td>${index}</td>
                    <td>${ele.name}</td>
                    <td>${ele.alias}</td>
                    <td>
                      <button data-id=${ele.Id} class="btn-edit layui-btn layui-btn-xs" lay-submit lay-filter="formDemo">
                        编辑
                      </button>
                      <button data-id=${ele.Id} class="btn-del layui-btn layui-btn-xs layui-btn-danger">
                        删除
                      </button>
                    </td>
                  </tr>
                 `);
      });
      $("tbody").empty().html(arr.join(""));
    });
  }

  // 需求2 点击添加，显示对话框
  let indexAdd = null;
  $("#btnAdd").on("click", function () {
    indexAdd = layer.open({
      type: 1,
      area: ["500px", "300px"],
      content: `
      <form class="layui-form" id="formAdd">
        <div class="layui-form-item">
          <label class="layui-form-label">分类名称</label>
          <div class="layui-input-block">
            <input
              type="text"
              name="name"
              required
              lay-verify="required"
              placeholder="请输入分类名称"
              autocomplete="off"
              class="layui-input"
            />
          </div>
        </div>
        <div class="layui-form-item">
          <label class="layui-form-label">分类别名</label>
          <div class="layui-input-block">
            <input
              type="text"
              name="alias"
              required
              lay-verify="required"
              placeholder="请输入分类别名"
              autocomplete="off"
              class="layui-input"
            />
          </div>
        </div>
        <div class="layui-form-item">
          <div class="layui-input-block">
            <button class="layui-btn" lay-submit lay-filter="formDemo">
              确认添加
            </button>
            <button type="reset" class="layui-btn layui-btn-primary">重置</button>
          </div>
        </div>
      </form>`,
    });
  });

  // 需求3 添加文章分类
  $("body").on("submit", "#formAdd", function (e) {
    e.preventDefault();
    axios({
      method: "POST",
      url: "/my/article/addcates",
      data: $(this).serialize(),
    }).then((res) => {
      // console.log(res.data);
      if (res.data.status !== 0) {
        return layer.msg(res.data.message);
      }
      // 给出成功提示，关闭弹窗，刷新文章分类页面
      layer.msg("恭喜您，添加文章分类成功！");
      layer.close(indexAdd);
      initArtCateList();
    });
  });

  //需求4 点击按钮展示对话框，更新文章分类
  let indexEdit = null;
  $("tbody").on("click", ".btn-edit", function () {
    // 给出弹窗
    indexEdit = layer.open({
      type: 1,
      area: ["500px", "300px"],
      content: `
  <form lay-filter='formEdit' class="layui-form" id="formEdit">
   <input type='hidden' name='Id'>
    <div class="layui-form-item">
      <label class="layui-form-label">分类名称</label>
      <div class="layui-input-block">
        <input
          type="text"
          name="name"
          required
          lay-verify="required"
          placeholder="请输入分类名称"
          autocomplete="off"
          class="layui-input"
        />
      </div>
    </div>
    <div class="layui-form-item">
      <label class="layui-form-label">分类别名</label>
      <div class="layui-input-block">
        <input
          type="text"
          name="alias"
          required
          lay-verify="required"
          placeholder="请输入分类别名"
          autocomplete="off"
          class="layui-input"
        />
      </div>
    </div>
    <div class="layui-form-item">
      <div class="layui-input-block">
        <button class="layui-btn" lay-submit lay-filter="formDemo">
          确认修改
        </button>
        <button type="reset" class="layui-btn layui-btn-primary">重置</button>
      </div>
    </div>
  </form>`,
    });

    // 需求4.1 展示当前的文章分类信息
    let id = $(this).attr("data-id");
    // console.log(id);
    axios({
      method: "GET",
      url: "/my/article/cates/" + id,
    }).then((res) => {
      if (res.data.status !== 0) {
        return layer.msg(res, data.message);
      }
      form.val("formEdit", res.data.data);
    });
  });

  // 需求5 修改文章分类
  $("body").on("submit", "#formEdit", function (e) {
    e.preventDefault();
    axios({
      method: "POST",
      url: "/my/article/updatecate",
      data: $(this).serialize(),
    }).then(function (res) {
      if (res.data.status !== 0) {
        return layer.msg(res.data.message);
      }
      layer.msg("恭喜您，修改文章分类成功！");
      layer.close(indexEdit);
      initArtCateList();
    });
  });

  // 需求6 删除功能
  $("tbody").on("click", ".btn-del", function () {
    let id = $(this).attr("data-id");
    layer.confirm("确认删除吗?", { icon: 3, title: "提示" }, function (index) {
      //do something
      axios({
        method: "GET",
        url: "/my/article/deletecate/" + id,
      }).then(function (res) {
        if (res.data.status !== 0) {
          return layer.msg(res.data.message);
        }
        layer.msg("恭喜您，删除文章分类成功！");
        initArtCateList();
      });
      layer.close(index);
    });
  });
});
